package com.example.kotlinstudy.s7

/**
 * 伴生对象
 * 一个类只有一个伴生对象
 */
class Fragment {
    //kotlin中没有静态static的概念，而是伴生对象。
    companion object {
        private const val Tag1 = "LoginFragment1" //只能当前类用

        //不写private  就是相当于public
        const val Tag = "LoginFragment" //const 相当于java中 static final

        //方法
        fun xx2() {  //相当于静态方法
            println(Tag)
        }
    }

    fun xx() {
        println(Tag)
    }
}

fun main() {
    println(Fragment().xx())
    println(Fragment.Tag)

    /***
     * 1只有调用这个函数或者 Fragment()实例化这个对象，伴生对象才会实例化，这样就节省是内存  比java中更加科学
     * 2并且在内存中永远只有一份，是单例的。
     */
    Fragment.xx2()
}